home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
Libraries
/
DCLAP 6d
/
dclap6d
/
corelib
/
ncbimath.h
< prev
next >
Wrap
Text File
|
1996-07-05
|
5KB
|
158 lines
/* ncbimath.h
* ===========================================================================
*
* PUBLIC DOMAIN NOTICE
* National Center for Biotechnology Information
*
* This software/database is a "United States Government Work" under the
* terms of the United States Copyright Act. It was written as part of
* the author's official duties as a United States Government employee and
* thus cannot be copyrighted. This software/database is freely available
* to the public for use. The National Library of Medicine and the U.S.
* Government have not placed any restriction on its use or reproduction.
*
* Although all reasonable efforts have been taken to ensure the accuracy
* and reliability of the software and data, the NLM and the U.S.
* Government do not and cannot warrant the performance or results that
* may be obtained by using this software or data. The NLM and the U.S.
* Government disclaim all warranties, express or implied, including
* warranties of performance, merchantability or fitness for any particular
* purpose.
*
* Please cite the author in any work or product based on this material.
*
* ===========================================================================
*
* File Name: ncbimath.h
*
* Author: Gish, Kans, Ostell, Schuler
*
* Version Creation Date: 10/23/91
*
* $Revision: 2.3 $
*
* File Description:
* prototypes for portable math library
*
* Modifications:
* --------------------------------------------------------------------------
* Date Name Description of modification
* ------- ---------- -----------------------------------------------------
*
* ==========================================================================
*/
#ifndef _NCBIMATH_
#define _NCBIMATH_
#ifdef __cplusplus
extern "C" {
#endif
/* log(x+1) for all x > -1 */
double LIBCALL Nlm_Log1p PROTO((double));
/* exp(x)-1 for all x */
double LIBCALL Nlm_Expm1 PROTO((double));
/* Factorial */
double LIBCALL Nlm_Factorial PROTO((int));
/* gamma(x) */
double LIBCALL Nlm_Gamma PROTO((double));
/* log(gamma(x)) */
double LIBCALL Nlm_LnGamma PROTO((double));
/* log(gamma(n)), integral n */
double LIBCALL Nlm_LnGammaInt PROTO((int));
/* digamma(x) 1st order derivative of log(gamma(x)) */
double LIBCALL Nlm_DiGamma PROTO((double));
/* trigamma(x) 2nd order derivative of log(gamma(x)) */
double LIBCALL Nlm_TriGamma PROTO((double));
/* Nth order derivative of log(gamma) */
double LIBCALL Nlm_PolyGamma PROTO((double x, int order));
/* Change gamma coefficients */
void LIBCALL Nlm_GammaCoeffSet PROTO((double PNTR coef, unsigned dimension));
/* Nth order derivative of ln(u) */
double LIBCALL Nlm_LogDerivative PROTO((int order, double PNTR u));
/* Combined Newton-Raphson and Bisection root solver */
double LIBCALL Nlm_NRBis PROTO((double y, double (LIBCALL *f) (double), double (LIBCALL *df) (double), double p, double x, double q, double tol));
/* Romberg numerical integrator */
double LIBCALL Nlm_RombergIntegrate PROTO((double (LIBCALL *f) (double, Nlm_VoidPtr), Nlm_VoidPtr fargs, double p, double q, double eps, int epsit, int itmin));
/* Greatest common divisor */
long LIBCALL Nlm_Gcd PROTO((long, long));
/* Nearest integer */
long LIBCALL Nlm_Nint PROTO((double));
/* Integral power of x */
double LIBCALL Nlm_Powi PROTO((double x, int n));
/* Random no. seeder and generator */
void LIBCALL Nlm_RandomSeed PROTO((long n));
long LIBCALL Nlm_RandomNum PROTO((void));
#define Log1p Nlm_Log1p
#define Expm1 Nlm_Expm1
#define Factorial Nlm_Factorial
#define Gamma Nlm_Gamma
#define LnGamma Nlm_LnGamma
#define DiGamma Nlm_DiGamma
#define TriGamma Nlm_TriGamma
#define PolyGamma Nlm_PolyGamma
#define GammaCoeffSet Nlm_GammaCoeffSet
#define LogDerivative Nlm_LogDerivative
#define NRBis Nlm_NRBis
#define RombergIntegrate Nlm_RombergIntegrate
#define Gcd Nlm_Gcd
#define Nint Nlm_Nint
#define Powi Nlm_Powi
#define RandomSeed Nlm_RandomSeed
#define RandomNum Nlm_RandomNum
/* Error codes for the CTX_NCBIMATH context */
#define ERR_NCBIMATH_INVAL 1 /* invalid parameter */
#define ERR_NCBIMATH_DOMAIN 2 /* domain error */
#define ERR_NCBIMATH_RANGE 3 /* range error */
#define ERR_NCBIMATH_ITER 4 /* iteration limit exceeded */
#define LOGDERIV_ORDER_MAX 4
#define POLYGAMMA_ORDER_MAX LOGDERIV_ORDER_MAX
#define NCBIMATH_PI 3.1415926535897932384626433832795
#define NCBIMATH_E 2.7182818284590452353602874713527
/* Euler's constant */
#define NCBIMATH_EULER 0.5772156649015328606065120900824
/* Catalan's constant */
#define NCBIMATH_CATALAN 0.9159655941772190150546035149324
/* sqrt(2) */
#define NCBIMATH_SQRT2 1.4142135623730950488016887242097
/* sqrt(3) */
#define NCBIMATH_SQRT3 1.7320508075688772935274463415059
/* sqrt(PI) */
#define NCBIMATH_SQRTPI 1.7724538509055160272981674833411
/* Natural log(2) */
#define NCBIMATH_LN2 0.69314718055994530941723212145818
/* Natural log(10) */
#define NCBIMATH_LN10 2.3025850929940456840179914546844
/* Natural log(PI) */
#define NCBIMATH_LNPI 1.1447298858494001741434273513531
#ifdef __cplusplus
}
#endif
#endif /* !_NCBIMATH_ */